PostgreSQL pg_restore

1 pg_restore 语法

pg_restore --help

pg_restore可以从pg_dump创建的存档中恢复一个PostgreSQL数据库。 用法:
pg_restore [选项]... [文件名]

通用选项:
-d, --dbname=NAME             连接到数据库名称
-f, --file=文件名             输出文件名
-F, --format=c|d|t            备份文件格式(应该是自动的)
-l, --list                    打印存档的汇总目录
-v, --verbose                 详细信息模式
-V, --version                 输出版本信息并退出
-?, --help                    显示此帮助信息并退出

恢复控制选项:
-a, --data-only               仅恢复数据,而不恢复schema
-c, --clean                   在重新创建数据库对象之前清除(删除)数据库对象
-C, --create                  创建目标数据库
-e, --exit-on-error           恢复期间发生错误时退出,若不设定则默认为继续恢复
-I, --index=NAME              恢复命名索引
-j, --jobs=NUM                使用这多个并行作业进行恢复
-L, --use-list=FILENAME       将此文件的目录用于选择输出或对输出进行排序
-n, --schema=NAME             仅恢复此schema中的对象
-N, --exclude-schema=NAME     不恢复该schema中的对象 ➊
-O, --no-owner                跳过对象所有权的恢复
-P, --function=NAME(args)     恢复命名函数
-s, --schema-only             仅恢复schema,而不恢复数据
-S, --superuser=NAME          用于禁用触发器的超级用户名
-t, --table=NAME              恢复命名表(含表和视图等) ➋
-T, --trigger=NAME            恢复命名触发器
-x, --no-privileges           跳过访问特权(grant/revoke)的恢复
-1, --single-transaction      作为单个事务恢复
--enable-row-security         启用行安全性 ➌
--disable-triggers            在仅恢复数据期间禁用触发器
--no-data-for-failed-tables   如果表创建失败,则不对其进行数据恢复
--no-publications             不导出逻辑复制发布端数据源定义 ➍
--no-security-labels          不恢复安全标签
--no-subscriptions            不导出逻辑复制订阅端的数据订阅定义 ➎
--no-tablespaces              不恢复表空间分配
--section=SECTION             恢复命名部分(包括三个部分:pre-data、data以及post-
                              data。data部分包含表记录数据、大对象数据以及序列的
                              值;post-data部分包含索引、触发器、规则和约束(除了
                              验证检查约束)的定义;pre-data部分包含此外其他所有
                              的对象定义)

--strict-names                要求每个表和/或schema包括模式以匹配至少一个实体 ➏

--use-set-session-authorization       使用SET SESSION AUTHORIZATION命令代替ALTER
                                      OWNER命令来设置所有权

连接选项:
-h, --host=主机名             数据库服务器主机或套接字目录
-p, --port=端口号             数据库服务器端口号
-U, --username=名称           作为指定数据库用户连接
-w, --no-password             永远不提示输入密码
-W, --password                强制要求输入密码(应该自动发生)
--role=ROLENAME               在恢复之前执行SET ROLE命令